// 工具类的函数
// 所有代码通用性强的 工具或者函数或者类 可以放在 util
// 针对项目里公共的内容 放在 common文件夹里
// 1.安装 formidable 模块  ：
// 2.引入 formidable 模块 
const formidable = require("formidable");
const path = require("path");
// 3.实例化且配置  formidable 模块 
let form = new formidable.IncomingForm({
  uploadDir: path.resolve(process.cwd(), "./static"), // 上传文件存储的路径
  keepExtensions: true // 保持之前上传文件的后缀名称
});

module.exports = {
  uploadimg (req) {   // 上传文件的函数，返还一个promise对象
    return new Promise((resolve, reject) => {
      // 4.通过 formidable 格式化 数据和文件；
      form.parse(req, (err, fields, files) => {
        if (err) {
          reject(err);
          return console.log(err); // 如果有错误 就抛出错误
        }
        // 获取字段信息 把 文件路径地址添加到数据库
        // console.log(fields,files);
        // 通过promise返还字段，文件路径

        let newFilename = files.myimg.newFilename;
        resolve({ ...fields, imgurl: newFilename });
      })
    })
  }
}